<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>利用递归遍历数据</title>
</head>
<body>
  <script>
    var data = [
      {
        id: 1,
        name: '家电',
        goods: [
          {
            id: 11,
            gname: '冰箱',
            goods: [
              {
                id: 111,
                gname: '海尔',
              }, {
                id: 112,
                gname: '美的',
              }],
          }, {
            id: 12,
            gname: '洗衣机',
          }],
      }, {
        id: 2,
        name: '服饰',
        goods: [
          {
            id: 21,
            gname: '耐克',
          }, {
            id: 22,
            gname: '阿迪达斯',
          },
        ],
      }]
    // 我们想要做输入id号,就可以返回的数据对象
    // 1. 利用 forEach 去遍历里面的每一个对象
    var o = {}

    function getID (json, id) {
      json.forEach(function (item) {
        // console.log(item); // 2个数组元素
        if (item.id === id) {
          // console.log(item)
          o = item
          // 2. 我们想要得里层的数据 11 12 可以利用递归函数
          // 里面应该有goods这个数组并且数组的长度不为 0
        } else if (item.goods && item.goods.length !== 0) {
          o = getID(item.goods, id)
        }
      })
      return o
    }

    console.log(getID(data, 1))
    console.log(getID(data, 2))
    console.log(getID(data, 11))
    console.log(getID(data, 12))
    console.log(getID(data, 111))
    console.log(getID(data, 21))
  </script>
</body>
</html>